package File.常用方法3_遍历文件夹;

// 目标: 掌握File提供的遍历文件夹的方法

import java.io.File;
import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        // 1. public String[] list(): 获取当前目录下所有的 "一级文件名称 "到一个字符串数组中返回.
        File file = new File("C:\\Users\\20555\\Desktop\\职业规划");
        String[] name = file.list();
        System.out.println(Arrays.toString(name));

        // 2. public File[] listFiles(): (重点) 获取当前目录下所有的"一级文件对象"到一个文件对象数组中去返回(重点)
        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1.getPath());
        }
        // 使用listFiles的注意事项:
        // 当主调是文件, 或者路径不存在时, 返回null
        File file1 = new File("D/particular/pat.txt");
        File[] files1 = file1.listFiles();
        System.out.println(files1); //null
        // 当主调为空文件夹时, 返回一个长度为0的数组
        File file2 = new File("D:\\particular\\aaa\\bbb");
        File[] files2 = file2.listFiles();
        System.out.println(Arrays.toString(files2)); // 空数组
        // 当主调是一个由内容的文件夹时, 将里面所有一级文件和文件夹的路径放在File数组中返回(就是正常使用)
        // 当主调是一个文件夹, 且里面由隐藏文件时, 将里面所有文件和文件夹的路径放在File数组中返回, 包含隐藏文件
        // 当主调时一个文件夹, 但是没有权限访问文件夹时, 返回null

    }
}
